package lc.q250_300;

public class Q278 extends VersionControl{

    public int firstBadVersion(int n) {
        // 二分法
        // 已知n肯定是错的，所以高位
        int low = 1;
        int high = n;
        while (low < high) {
            int mid = low + (high - low) / 2;
            if (isBadVersion(mid)) {
                // 这里mid无需减一，因为mid可能是答案，减一了就导致答案被排除
                high = mid;
            } else {
                // 这里mid需要+1，因为mid肯定不是答案，加一避免了重复计算
                low = mid + 1;
            }
        }
        return low;
    }


}
